// commander是一个命令行解决方案。通过它可以告诉用户脚手架的命令与功能，以及处理用户输入。
const { program } = require('commander');
// 添加名称，描述，版本号，用法提示
program
    .name('cli')
    .description('这是一个神奇的脚手架')
    .version('0.0.1')
    .usage('<command> [options]');
// node main.js

// createPage 命令
program.command('createPage')
    .description('生成一个页面') // 命令描述
    .argument('<name>', '文件名字') // <name>表 name 为必填
    .action((name) => { // 输入该命令的动作，逻辑实现
        console.log(`新建了一个文件：${name}`);
    });

// node main.js createPage index.vue ---->新建一个文件：index.vue
// program.parse(); // 解析

// chalk 是一个终端字符串美化工具。安装：npm install chalk@4.1.2
/* chalk 最新版是 ES6 Module 的写法，不支持 require 使用，
如果遇到错误 Error[ERR_REQUIRE_ESM]: require() of ES Module / node_modules / chalk / source / index.js from / Desktop / test / main.js not supported.
安装旧版本可以避免该问题。 */
// 使用：chalk.blue表字体蓝色，chalk.red表字体红色，chalk.underline表下划线，chalk.bgRed背景红色
const chalk = require('chalk');
console.log(`${chalk.blue('hello')}, ${chalk.red('this')} ${chalk.underline('is')} ${chalk.bgRed('chalk')}`)
// node main.js   // 需要注释掉上面的program.parse()，node命令不能同时解析两个？

// inquirer 交互式命令行界面。提供了询问操作者问题，获取并解析用户输入，多层级的提示，提供错误回调，检测用户回答是否合法等能力。 安装： npm install inquirer@8.2.5

